package besteAukera;

import java.awt.Color;
import java.awt.Graphics;
import java.util.Vector;

public class Not extends AteLogikoak {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Color kolorea;
	private Vector<Hanka> hankaBektorea = new Vector<Hanka>();
	private Vector<Hanka> sarreraBektorea = new Vector<Hanka>();
	private Hanka s1, i1;
/**
 * Behar dituen parametroak pasata Not logikoa sortzeko eraikitzailea.
  * @param x1
	 *            :Not logiko eta fisikoaren irudiko  ezker iskineko x
	 *            koordenatua.
	 * @param y1
	 *            :Not logiko eta fisikoaren irudiko ezker iskineko y
	 *            koordenatua.
	 * @param hankaKop
	 *            :Not-aren hanka kopurua.
	 * @param sarKop
	 *            :Not-aren sarrera kopurua.
	 * @param motaFis
	 *             :Hankak marrazterakoan zein aldaketa fisiko egiten duen jakiteko.
	 * @param kolorea
 */
	public Not(int x1, int y1, int hankaKop, int sarKop,String motaFis, Color kolorea) {
		super(x1, y1, hankaKop, sarKop,motaFis, kolorea);
		// TODO Auto-generated constructor stub
		if (motaFisikoa.compareTo("posNegH") == 0) {
			s1 = new Hanka(x, y + 25, "positiboa", "s", 0, this, "h",
					"ez",false);
			i1 = new Hanka(x + 45, y + 25, "negatiboa", "i", 1, this,
					"h", "ez",false);
		} else if (motaFisikoa.compareTo("negPosH") == 0) {
			s1 = new Hanka(x, y + 25, "negatiboa", "s", 0, this, "h",
					"ez",false);
			i1 = new Hanka(x + 45, y + 25, "positiboa", "i", 1, this,
					"h", "ez",false);
		}
		else if (motaFisikoa.compareTo("posNegB") == 0) {
			s1 = new Hanka(x+20, y + 5, "positiboa", "s", 0, this, "b",
					"ez",false);
			i1 = new Hanka(x + 20, y + 45, "negatiboa", "i", 1, this,
					"b", "ez",false);
		}
	else if (motaFisikoa.compareTo("negPosB") == 0) {
		s1 = new Hanka(x+20, y + 5, "negatiboa", "s", 0, this, "b",
				"ez",false);
		i1 = new Hanka(x + 20, y + 45, "positiboa", "i", 1, this,
				"b", "ez",false);
	}
		lotList[0] = s1;
		lotList[1] = i1;
	}
/**
 * Not fisiko-logikoa marrazten du.
 */
	public void marraztu(Graphics g) {
		if (getAukeratua() == true) {
			kolorea = Color.GRAY;
		} else {
			kolorea = Color.black;
		}
		g.setColor(kolorea);
		if(motaFisikoa.compareTo("posNegH")==0||motaFisikoa.compareTo("posNegH")==0){
		g.drawLine(x + 30, y + 15, x + 10, y + 35);
		}
		else if(motaFisikoa.compareTo("posNegB")==0||motaFisikoa.compareTo("negPosB")==0){
			g.drawLine(x + 30, y + 35, x + 10, y + 15);
			}
		s1.marraztu(g);
		i1.marraztu(g);
	}
/**
	 * Sagua Not irudiaren barnean dagoen edo ez adierazten du.  Saguaren 
	 * koordenatuak Not-aren irudiarekin alderatuz.
	 * 
	 * @param x
	 * 			:Saguaren posizioa x ardatzean.
	 * @param y
	 * 			:Saguaren posizioa y ardatzean.
	 * @return true sagua Not barruan badago
	 * 		   false bestela
	 */
 
	public boolean barruanDago(int x, int y) {
		if ((x > this.x+10) && (x < (this.x + 30)) && (y > this.y+15)
				&& (y < (this.y + 35))) {
			return true;
		}

		return false;

	}
/**
 * Not txiparen irteerako hankari not eragiketa logikoaren balioa
 * emango dio:
 * s1 i1
 * 0 = 1
 * 1 = 0
 * @param Not-aren sarrerako bitaren balioa
 */
	@Override
	public void funtzioLogikoa(Integer... values) {

		// TODO Auto-generated method stub

		if (s1.getSarrera().getBalioa() == 1)
			lotList[1].getIrteera().setBalioa(0);
		else
			lotList[1].getIrteera().setBalioa(1);
	}
	/**
	 * Not txipeko hanka hankaBektorea Vector-en sartzen du.
	 * 
	 * @return Not txiparen hanken bektorea
	 */
	@Override
	public Vector<Hanka> getHankak() {
		// TODO Auto-generated method stub
		hankaBektorea = new Vector<Hanka>();
		hankaBektorea.addElement(s1);
		hankaBektorea.addElement(i1);
		return hankaBektorea;
	}
	/**
	 * Not txipeko sarrera hanka hankaBektorea Vector-en sartzen du.
	 */
	@Override
	public Vector<Hanka> getSarreraHankak() {
		sarreraBektorea = new Vector<Hanka>();
		sarreraBektorea.addElement(s1);
		sarreraBektorea.addElement(i1);
		return sarreraBektorea;
	}
}
